home *** CD-ROM | disk | FTP | other *** search
/ Champak 114 / Vol 114.iso / games / bubble_s.swf / scripts / frame_1 / DoAction.as
Encoding:
Text File  |  2010-08-12  |  26.2 KB  |  1,474 lines

  1. function GameOver()
  2. {
  3.    getURL("FSCommand:108",0);
  4.    if(vSound)
  5.    {
  6.       vsGO.setPan(0);
  7.       vsGO.start();
  8.    }
  9.    if(vBonusF)
  10.    {
  11.       vBonus = vSC;
  12.       vCC = cmNothing;
  13.    }
  14.    else
  15.    {
  16.       vBonus = 0;
  17.       vCC = cmBangAll;
  18.    }
  19.    vDialog = true;
  20.    attachMovie("_go","wgo",15000);
  21.    with(wgo)
  22.    {
  23.       _x = (800 - _width) / 2;
  24.       _y = (600 - _height) / 2;
  25.    }
  26. }
  27. function SetLevel()
  28. {
  29.    var i;
  30.    if(!aa)
  31.    {
  32.       vLevel = 1;
  33.    }
  34.    if(vLevel == 1)
  35.    {
  36.       vLMax = 5;
  37.    }
  38.    else if(vLevel == 2)
  39.    {
  40.       vLMax = 3;
  41.    }
  42.    else if(vLevel == 3)
  43.    {
  44.       vLMax = 1;
  45.    }
  46.    _a._visible = vLevel < 2;
  47.    _state.gotoAndStop(vLevel);
  48.    i = 1;
  49.    while(vLMax >= i)
  50.    {
  51.       eval("F.bb" + i).gotoAndStop("Start");
  52.       i++;
  53.    }
  54.    i = vLMax + 1;
  55.    while(5 >= i)
  56.    {
  57.       eval("F.bb" + i).gotoAndStop("Blank");
  58.       i++;
  59.    }
  60.    vLMaxC = vLMax;
  61.    vLCur = vLMax;
  62. }
  63. function DecLevelStep()
  64. {
  65.    var i;
  66.    var b;
  67.    var ccc;
  68.    if(vLCur == 0)
  69.    {
  70.       if(0 < vLMaxC)
  71.       {
  72.          vLMaxC--;
  73.       }
  74.       else
  75.       {
  76.          vLMaxC = vLMax;
  77.       }
  78.       ccc = 0;
  79.       i = 0;
  80.       while(5 >= i)
  81.       {
  82.          if(0 < CC[i])
  83.          {
  84.             ccc++;
  85.          }
  86.          i++;
  87.       }
  88.       ccc = 6 - ccc;
  89.       if(vLMax - ccc < vLMaxC)
  90.       {
  91.          vLMaxC = vLMax - ccc;
  92.          if(vLMaxC < 0)
  93.          {
  94.             vLMaxC = 0;
  95.          }
  96.       }
  97.       vLCur = vLMaxC;
  98.       i = 1;
  99.       while(vLMaxC >= i)
  100.       {
  101.          eval("F.bb" + i).gotoAndPlay("Show");
  102.          i++;
  103.       }
  104.       i = vLMaxC + 1;
  105.       while(5 >= i)
  106.       {
  107.          eval("F.bb" + i).gotoAndStop("Blank");
  108.          i++;
  109.       }
  110.       if(!MoveRowDown())
  111.       {
  112.          vBonusF = false;
  113.          vCC = cmGameOver;
  114.       }
  115.       else
  116.       {
  117.          vCC = cmBFDownCalc;
  118.       }
  119.    }
  120.    else
  121.    {
  122.       eval("_root.F.bb" + vLCur).gotoAndPlay("Hide");
  123.       vLCur--;
  124.       b = false;
  125.       i = 304;
  126.       while(i < 323)
  127.       {
  128.          b = 0 < BB[i].COL;
  129.          if(b)
  130.          {
  131.             break;
  132.          }
  133.          i++;
  134.       }
  135.       if(b)
  136.       {
  137.          vBonusF = false;
  138.          vCC = cmGameOver;
  139.       }
  140.       else
  141.       {
  142.          vCC = cmBHideNext;
  143.       }
  144.    }
  145. }
  146. function MoveRowDown()
  147. {
  148.    var r;
  149.    var c;
  150.    var i;
  151.    var ccc;
  152.    var ii;
  153.    var b;
  154.    ccc = 0;
  155.    i = 0;
  156.    while(5 >= i)
  157.    {
  158.       if(0 < CC[i])
  159.       {
  160.          ccc++;
  161.       }
  162.       i++;
  163.    }
  164.    ccc = 6 - ccc;
  165.    ii = 0;
  166.    while(ccc >= ii)
  167.    {
  168.       r = 15;
  169.       while(r >= 1)
  170.       {
  171.          c = 1;
  172.          while(17 >= c)
  173.          {
  174.             i = r * 19 + c;
  175.             with(BB[i + 19])
  176.             {
  177.                if(COL != BB[i].COL)
  178.                {
  179.                   COL = BB[i].COL;
  180.                   if(0 < COL)
  181.                   {
  182.                      N.gotoAndPlay("Start" + COL);
  183.                   }
  184.                   else
  185.                   {
  186.                      N.gotoAndPlay(1);
  187.                   }
  188.                }
  189.             }
  190.             c++;
  191.          }
  192.          r--;
  193.       }
  194.       i = 20;
  195.       while(i < 37)
  196.       {
  197.          with(BB[i])
  198.          {
  199.             COL = RColor();
  200.             N.gotoAndPlay("Start" + COL);
  201.          }
  202.          i++;
  203.       }
  204.       i = 304;
  205.       while(i < 323)
  206.       {
  207.          if(0 < BB[i].COL)
  208.          {
  209.             return false;
  210.          }
  211.          i++;
  212.       }
  213.       ii++;
  214.    }
  215.    return true;
  216. }
  217. function ShowScore(AS, AN)
  218. {
  219.    AN.d6._visible = AS >= 1000000;
  220.    AN.d5._visible = AS >= 100000;
  221.    AN.d4._visible = AS >= 10000;
  222.    AN.d3._visible = AS >= 1000;
  223.    AN.d2._visible = AS >= 100;
  224.    AN.d1._visible = AS >= 10;
  225.    AN.d0.gotoAndStop(AS % 10 + 1);
  226.    AN.d1.gotoAndStop(int(AS / 10) % 10 + 1);
  227.    AN.d2.gotoAndStop(int(AS / 100) % 10 + 1);
  228.    AN.d3.gotoAndStop(int(AS / 1000) % 10 + 1);
  229.    AN.d4.gotoAndStop(int(AS / 10000) % 10 + 1);
  230.    AN.d5.gotoAndStop(int(AS / 100000) % 10 + 1);
  231.    AN.d6.gotoAndStop(int(AS / 1000000) % 10 + 1);
  232. }
  233. function RColor()
  234. {
  235.    var i;
  236.    var c;
  237.    c = 0;
  238.    i = 0;
  239.    while(i < 6)
  240.    {
  241.       if(0 < CC[i])
  242.       {
  243.          CCC[c] = i + 1;
  244.          c++;
  245.       }
  246.       i++;
  247.    }
  248.    i = CCC[random(c)];
  249.    CC[i - 1]++;
  250.    return i;
  251. }
  252. function BMakeNext()
  253. {
  254.    var i;
  255.    var b;
  256.    if(!aa)
  257.    {
  258.       vRC--;
  259.    }
  260.    b = true;
  261.    i = 21;
  262.    while(i < 40)
  263.    {
  264.       b = BB[i].COL == 0;
  265.       if(!b)
  266.       {
  267.          break;
  268.       }
  269.       i++;
  270.    }
  271.    if(b)
  272.    {
  273.       vBonusF = true;
  274.       vCC = cmGameOver;
  275.       return true;
  276.    }
  277.    vBNextCol = RColor();
  278.    with(vBNext)
  279.    {
  280.       _x = cXNext;
  281.       _y = cYNext;
  282.       gotoAndPlay("Show" + vBNextCol);
  283.    }
  284.    vCC = cmNothing;
  285.    getURL("FSCommand:108",0);
  286. }
  287. function BMakeCurrent()
  288. {
  289.    getURL("FSCommand:107",0);
  290.    vBCurCol = vBNextCol;
  291.    with(vBCur)
  292.    {
  293.       _x = cXCur;
  294.       _y = cYCur;
  295.       gotoAndPlay("Show" + vBCurCol);
  296.    }
  297.    vCC = cmBMakeNext;
  298. }
  299. function FPlay()
  300. {
  301.    var i;
  302.    i = random(323);
  303.    if(0 < BB[i].COL)
  304.    {
  305.       BB[i].N.gotoAndPlay("Splash" + BB[i].COL);
  306.    }
  307. }
  308. function Init()
  309. {
  310.    var r;
  311.    var c;
  312.    var dpt;
  313.    BB = new Array();
  314.    RB = new Array();
  315.    CC = new Array();
  316.    CCC = new Array();
  317.    NAMES = new Array();
  318.    TOPN = new Array();
  319.    TOPS = new Array();
  320.    vsBang = new Sound();
  321.    vsBang.attachSound("_sbang");
  322.    vsBang.setVolume(vVolume);
  323.    vsBang.setPan(0);
  324.    vsStart = new Sound();
  325.    vsStart.attachSound("_sstart");
  326.    vsStart.setVolume(vVolume);
  327.    vsStart.setPan(0);
  328.    vsConnect = new Sound();
  329.    vsConnect.attachSound("_sconnect");
  330.    vsConnect.setVolume(vVolume);
  331.    vsConnect.setPan(0);
  332.    vsDown = new Sound();
  333.    vsDown.attachSound("_sdown");
  334.    vsDown.setVolume(vVolume);
  335.    vsDown.setPan(0);
  336.    vsGO = new Sound();
  337.    vsGO.attachSound("_sgo");
  338.    vsGO.setVolume(vVolume);
  339.    vsGO.setPan(0);
  340.    r = 0;
  341.    while(r < 30)
  342.    {
  343.       TOPN[r] = "";
  344.       TOPS[r] = 0;
  345.       r++;
  346.    }
  347.    dpt = 10;
  348.    r = 0;
  349.    while(r < 17)
  350.    {
  351.       c = 0;
  352.       while(c < 19)
  353.       {
  354.          BB[r * 19 + c] = new _BB(r,c,dpt);
  355.          dpt++;
  356.          c++;
  357.       }
  358.       r++;
  359.    }
  360.    vBNext = "b" + dpt;
  361.    attachMovie("_b",vBNext,dpt);
  362.    vBNext = eval(vBNext);
  363.    with(vBNext)
  364.    {
  365.       _x = cXNext;
  366.       _y = cYNext;
  367.    }
  368.    dpt++;
  369.    vBCur = "b" + dpt;
  370.    attachMovie("_b",vBCur,dpt);
  371.    vBCur = eval(vBCur);
  372.    with(vBCur)
  373.    {
  374.       _x = cXCur;
  375.       _y = cYCur;
  376.    }
  377. }
  378. function Start(AL)
  379. {
  380.    var r;
  381.    var c;
  382.    var i;
  383.    getURL("FSCommand:108",0);
  384.    SetLevel();
  385.    vFPS = 0;
  386.    vMPS = 0;
  387.    vRC = 0;
  388.    vRestart = false;
  389.    i = 0;
  390.    while(i < 6)
  391.    {
  392.       CC[i] = 0;
  393.       i++;
  394.    }
  395.    vBCur.gotoAndStop(1);
  396.    vBNext.gotoAndStop(1);
  397.    if(!vAS || AL || vBS == "")
  398.    {
  399.       vSC = 0;
  400.       r = 1;
  401.       while(vStartRC >= r)
  402.       {
  403.          c = 1;
  404.          while(17 >= c)
  405.          {
  406.             with(BB[r * 19 + c])
  407.             {
  408.                COL = random(6) + 1;
  409.                CC[COL - 1]++;
  410.                N.gotoAndStop("Start" + COL);
  411.             }
  412.             c++;
  413.          }
  414.          r++;
  415.       }
  416.       r = vStartRC + 1;
  417.       while(16 >= r)
  418.       {
  419.          c = 1;
  420.          while(17 >= c)
  421.          {
  422.             with(BB[r * 19 + c])
  423.             {
  424.                COL = 0;
  425.                N.gotoAndStop("Blank");
  426.             }
  427.             c++;
  428.          }
  429.          r++;
  430.       }
  431.    }
  432.    else
  433.    {
  434.       r = 0;
  435.       while(r < 323)
  436.       {
  437.          BB[r].COL = int(vBS.substr(r,1));
  438.          if(0 < BB[r].COL)
  439.          {
  440.             CC[BB[r].COL - 1]++;
  441.             BB[r].N.gotoAndStop("Start" + BB[r].COL);
  442.          }
  443.          else
  444.          {
  445.             BB[r].N.gotoAndStop("Blank");
  446.          }
  447.          r++;
  448.       }
  449.    }
  450.    vBS = "";
  451.    ShowScore(vSC,_sc);
  452.    vBNextCol = RColor();
  453.    with(vBNext)
  454.    {
  455.       _x = cXNext;
  456.       _y = cYNext;
  457.       gotoAndStop("Start" + vBNextCol);
  458.    }
  459.    vBCurCol = RColor();
  460.    with(vBCur)
  461.    {
  462.       _x = cXCur;
  463.       _y = cYCur;
  464.       gotoAndPlay("Start" + vBCurCol);
  465.    }
  466.    vCC = cmNothing;
  467.    gotoAndStop("Main");
  468.    play();
  469. }
  470. function BCalcDelta(AAng)
  471. {
  472.    var t;
  473.    var dx;
  474.    var dy;
  475.    var x;
  476.    var y;
  477.    var b;
  478.    var r;
  479.    var c;
  480.    var i;
  481.    var lr;
  482.    var lc;
  483.    t = Math.tan(AAng * 3.141592 / 180);
  484.    if(0 < AAng)
  485.    {
  486.       if(AAng >= 45)
  487.       {
  488.          vDX = vDelta;
  489.          vDY = (- vDelta) / t;
  490.       }
  491.       else
  492.       {
  493.          vDY = - vDelta;
  494.          vDX = vDelta * t;
  495.       }
  496.    }
  497.    else if(-45 >= AAng)
  498.    {
  499.       vDX = - vDelta;
  500.       vDY = vDelta / t;
  501.    }
  502.    else
  503.    {
  504.       vDY = - vDelta;
  505.       vDX = vDelta * t;
  506.    }
  507.    vX = vBCur._x;
  508.    vY = vBCur._y;
  509.    dx = vDX;
  510.    dy = vDY;
  511.    x = vX;
  512.    y = vY;
  513.    vTC = 0;
  514.    lr = 0;
  515.    lc = 0;
  516.    while(true)
  517.    {
  518.       x += dx;
  519.       y += dy;
  520.       if(x + cR >= cR + cD * 17 + cB)
  521.       {
  522.          vTC++;
  523.          dx = - dx;
  524.       }
  525.       else if(cB >= x - cR)
  526.       {
  527.          vTC++;
  528.          dx = - dx;
  529.       }
  530.       r = int((y - cB) / cD) + 1;
  531.       if(r % 2)
  532.       {
  533.          c = int((x - cB) / cD) + 1;
  534.       }
  535.       else
  536.       {
  537.          c = int((x - cB - cR) / cD) + 1;
  538.       }
  539.       if(17 < c)
  540.       {
  541.          c = 17;
  542.       }
  543.       else if(c < 1)
  544.       {
  545.          c = 1;
  546.       }
  547.       if(16 >= r)
  548.       {
  549.          i = r * 19 + c;
  550.          b = cBR >= y;
  551.          if(!b)
  552.          {
  553.             b = 0 < BB[i].COL;
  554.             if(b)
  555.             {
  556.                r = lr;
  557.                c = lc;
  558.             }
  559.          }
  560.          if(!b)
  561.          {
  562.             b = 0 < BB[i - 19].COL && (y - BB[i - 19].Y) * (y - BB[i - 19].Y) + (x - BB[i - 19].X) * (x - BB[i - 19].X) < cDMM;
  563.          }
  564.          if(!b)
  565.          {
  566.             if(r % 2)
  567.             {
  568.                b = 0 < BB[i - 20].COL && (y - BB[i - 20].Y) * (y - BB[i - 20].Y) + (x - BB[i - 20].X) * (x - BB[i - 20].X) < cDMM;
  569.             }
  570.             else
  571.             {
  572.                b = 0 < BB[i - 18].COL && (y - BB[i - 18].Y) * (y - BB[i - 18].Y) + (x - BB[i - 18].X) * (x - BB[i - 18].X) < cDMM;
  573.             }
  574.          }
  575.          if(!b)
  576.          {
  577.             b = 0 < BB[i - 1].COL && x - BB[i - 1].X < cDM;
  578.          }
  579.          if(!b)
  580.          {
  581.             b = 0 < BB[i + 1].COL && BB[i + 1].X - x < cDM;
  582.          }
  583.          if(b)
  584.          {
  585.             vBBI = r * 19 + c;
  586.             vTX = BB[vBBI].X;
  587.             vTY = BB[vBBI].Y;
  588.             if(vTC == 0)
  589.             {
  590.                vTLDist = (vX - vTX) * (vX - vTX) + (vY - vTY) * (vY - vTY);
  591.             }
  592.             break;
  593.          }
  594.          lr = r;
  595.          lc = c;
  596.       }
  597.    }
  598. }
  599. function BCurMove()
  600. {
  601.    var d;
  602.    var nn;
  603.    vX += vDX;
  604.    vY += vDY;
  605.    if(vTC == 0)
  606.    {
  607.       d = (vX - vTX) * (vX - vTX) + (vY - vTY) * (vY - vTY);
  608.       if(d < cDD || vTLDist < d)
  609.       {
  610.          vDX = (vTX - vX) / 4;
  611.          if(Math.abs(vDX) < vDelta2)
  612.          {
  613.             vDX = vTX - vX;
  614.          }
  615.          vDY = (vTY - vY) / 4;
  616.          if(Math.abs(vDY) < vDelta2)
  617.          {
  618.             vDY = vTY - vY;
  619.          }
  620.       }
  621.       vTLDist = d;
  622.    }
  623.    if(vX + cR >= cR + cD * 17 + cB)
  624.    {
  625.       if(vSound)
  626.       {
  627.          vsStart.setPan(100);
  628.          vsStart.start();
  629.       }
  630.       vTC--;
  631.       vDX = - vDX;
  632.       if(vTC == 0)
  633.       {
  634.          vTLDist = (vX - vTX) * (vX - vTX) + (vY - vTY) * (vY - vTY);
  635.       }
  636.    }
  637.    else if(cB >= vX - cR)
  638.    {
  639.       if(vSound)
  640.       {
  641.          vsStart.setPan(-100);
  642.          vsStart.start();
  643.       }
  644.       vTC--;
  645.       vDX = - vDX;
  646.       if(vTC == 0)
  647.       {
  648.          vTLDist = (vX - vTX) * (vX - vTX) + (vY - vTY) * (vY - vTY);
  649.       }
  650.    }
  651.    if(vTX - vDelta2 < vX && vX < vTX + vDelta2 && vTY - vDelta2 < vY && vY < vTY + vDelta2)
  652.    {
  653.       nn = BB[vBBI].N;
  654.       BB[vBBI].N = vBCur;
  655.       BB[vBBI].COL = vBCurCol;
  656.       BB[vBBI].N._x = BB[vBBI].X;
  657.       BB[vBBI].N._y = BB[vBBI].Y;
  658.       BB[vBBI].N.gotoAndPlay("Splash" + BB[vBBI].COL);
  659.       nn._x = vXCur;
  660.       nn._y = vYCur;
  661.       vBCur = nn;
  662.       vCC = cmBRemoveCalc;
  663.       getURL("FSCommand:108",0);
  664.    }
  665.    else
  666.    {
  667.       vBCur._x = vX;
  668.       vBCur._y = vY;
  669.    }
  670. }
  671. function BRemoveCalc(AR, AC, ACol)
  672. {
  673.    var i;
  674.    var j;
  675.    j = AR * 19 + AC;
  676.    i = 0;
  677.    while(i < vRBC)
  678.    {
  679.       if(RB[i] == j)
  680.       {
  681.          return false;
  682.       }
  683.       i++;
  684.    }
  685.    if(BB[j].COL == ACol)
  686.    {
  687.       RB[vRBC] = j;
  688.       vRBC++;
  689.       if(AR % 2)
  690.       {
  691.          BRemoveCalc(AR - 1,AC,ACol);
  692.          BRemoveCalc(AR - 1,AC - 1,ACol);
  693.          BRemoveCalc(AR + 1,AC,ACol);
  694.          BRemoveCalc(AR + 1,AC - 1,ACol);
  695.       }
  696.       else
  697.       {
  698.          BRemoveCalc(AR - 1,AC,ACol);
  699.          BRemoveCalc(AR - 1,AC + 1,ACol);
  700.          BRemoveCalc(AR + 1,AC,ACol);
  701.          BRemoveCalc(AR + 1,AC + 1,ACol);
  702.       }
  703.       BRemoveCalc(AR,AC - 1,ACol);
  704.       BRemoveCalc(AR,AC + 1,ACol);
  705.       return true;
  706.    }
  707.    return false;
  708. }
  709. function BRemove()
  710. {
  711.    var i;
  712.    var b;
  713.    if(0 < vRBC)
  714.    {
  715.       vBBI = RB.Shift();
  716.       vRBC--;
  717.       BB[vBBI].N.gotoAndPlay("Bang" + BB[vBBI].COL);
  718.       if(vSound)
  719.       {
  720.          vsBang.setPan((BB[vBBI].C - 8) * 100 / 8);
  721.          vsBang.start();
  722.       }
  723.       CC[BB[vBBI].COL - 1]--;
  724.       BB[vBBI].COL = 0;
  725.       vFPS = 0;
  726.       if(vC3 >= 0)
  727.       {
  728.          if(vRemove)
  729.          {
  730.             vSC += (int(vC3 / 3) + 1) * 10;
  731.          }
  732.          else
  733.          {
  734.             vSC += (int(vC3 / 3) + 1) * 100;
  735.          }
  736.          vC3++;
  737.          ShowScore(vSC,_sc);
  738.       }
  739.    }
  740.    else
  741.    {
  742.       vPause = 5;
  743.       if(vRemove)
  744.       {
  745.          vCC = cmBFRemoveCalc;
  746.       }
  747.       else
  748.       {
  749.          vCC = cmBHideNext;
  750.       }
  751.    }
  752. }
  753. function BFRemoveCalc()
  754. {
  755.    function _BFR(AI)
  756.    {
  757.       if(BB[AI].COL == 0 || BB[AI].F == 1)
  758.       {
  759.          return false;
  760.       }
  761.       BB[AI].F = 1;
  762.       if(int(AI / 19) % 2)
  763.       {
  764.          _BFR(AI - 19);
  765.          _BFR(AI - 20);
  766.          _BFR(AI + 19);
  767.          _BFR(AI + 18);
  768.       }
  769.       else
  770.       {
  771.          _BFR(AI - 19);
  772.          _BFR(AI - 18);
  773.          _BFR(AI + 19);
  774.          _BFR(AI + 20);
  775.       }
  776.       _BFR(AI - 1);
  777.       _BFR(AI + 1);
  778.       return true;
  779.    }
  780.    var i;
  781.    var r;
  782.    var c;
  783.    i = 20;
  784.    while(i < 323)
  785.    {
  786.       BB[i].F = 0;
  787.       i++;
  788.    }
  789.    i = 1;
  790.    while(17 >= i)
  791.    {
  792.       if(0 < BB[19 + i].COL && BB[19 + i].F == 0)
  793.       {
  794.          _BFR(19 + i);
  795.       }
  796.       i++;
  797.    }
  798.    vRBC = 0;
  799.    i = 20;
  800.    while(i < 323)
  801.    {
  802.       if(0 < BB[i].COL && BB[i].F == 0)
  803.       {
  804.          RB[vRBC] = i;
  805.          vRBC++;
  806.       }
  807.       i++;
  808.    }
  809.    return vRBC;
  810. }
  811. function _BFR(AI)
  812. {
  813.    if(BB[AI].COL == 0 || BB[AI].F == 1)
  814.    {
  815.       return false;
  816.    }
  817.    BB[AI].F = 1;
  818.    if(int(AI / 19) % 2)
  819.    {
  820.       _BFR(AI - 19);
  821.       _BFR(AI - 20);
  822.       _BFR(AI + 19);
  823.       _BFR(AI + 18);
  824.    }
  825.    else
  826.    {
  827.       _BFR(AI - 19);
  828.       _BFR(AI - 18);
  829.       _BFR(AI + 19);
  830.       _BFR(AI + 20);
  831.    }
  832.    _BFR(AI - 1);
  833.    _BFR(AI + 1);
  834.    return true;
  835. }
  836. function _MainCore()
  837. {
  838.    if(0 < vMPS)
  839.    {
  840.       return 0;
  841.    }
  842.    if(vMPS < 0)
  843.    {
  844.       vMPS = 0;
  845.    }
  846.    if(0 < vPause)
  847.    {
  848.       vPause--;
  849.       return 0;
  850.    }
  851.    if(vCC == cmBM)
  852.    {
  853.       BCurMove();
  854.    }
  855.    else if(vCC == cmBMCalc)
  856.    {
  857.       getURL("FSCommand:107",0);
  858.       vBCur.gotoAndPlay("Splash" + vBCurCol);
  859.       BCalcDelta(vAngle);
  860.       if(vSound)
  861.       {
  862.          vsStart.setPan(0);
  863.          vsStart.start();
  864.       }
  865.       vCC = cmBM;
  866.    }
  867.    else if(vCC == cmNothing)
  868.    {
  869.       if(!aa && 0 >= vRC)
  870.       {
  871.          if(5 >= vDD)
  872.          {
  873.             vRC = 10000;
  874.          }
  875.          else if(14 >= vDD)
  876.          {
  877.             vRC = 200 / vDD;
  878.          }
  879.          else
  880.          {
  881.             vRC = 1;
  882.          }
  883.          SDButton();
  884.          vDialog = true;
  885.          vRestart = false;
  886.          attachMovie("_help","whelp",15000);
  887.          whelp._x = (800 - whelp._width) / 2;
  888.          whelp._y = (600 - whelp._height) / 2;
  889.       }
  890.       if(vFPS == 0 && vBAnim)
  891.       {
  892.          FPlay();
  893.       }
  894.    }
  895.    else if(vCC == cmBMakeNext)
  896.    {
  897.       BMakeNext();
  898.    }
  899.    else if(vCC == cmBHideNext)
  900.    {
  901.       vBNext.gotoAndPlay("Hide" + vBNextCol);
  902.       vCC = cmBMakeCur;
  903.    }
  904.    else if(vCC == cmBMakeCur)
  905.    {
  906.       BMakeCurrent();
  907.    }
  908.    else if(vCC == cmBRemoveCalc)
  909.    {
  910.       vRBC = 0;
  911.       BRemoveCalc(BB[vBBI].R,BB[vBBI].C,BB[vBBI].COL);
  912.       if(vRBC < 3)
  913.       {
  914.          if(vSound)
  915.          {
  916.             vsConnect.setPan((BB[vBBI].C - 8) * 100 / 8);
  917.             vsConnect.start();
  918.          }
  919.          DecLevelStep();
  920.       }
  921.       else
  922.       {
  923.          vC3 = 0;
  924.          vBBI = 0;
  925.          vRemove = true;
  926.          vCC = cmBRemove;
  927.       }
  928.    }
  929.    else if(vCC == cmBRemove)
  930.    {
  931.       BRemove();
  932.    }
  933.    else if(vCC == cmBFRemoveCalc)
  934.    {
  935.       BFRemoveCalc();
  936.       if(vRBC == 0)
  937.       {
  938.          vCC = cmBHideNext;
  939.       }
  940.       else
  941.       {
  942.          vC3 = 0;
  943.          vRemove = false;
  944.          vCC = cmBRemove;
  945.       }
  946.    }
  947.    else if(vCC == cmBFDownCalc)
  948.    {
  949.       BFRemoveCalc();
  950.       if(vRBC == 0)
  951.       {
  952.          vCC = cmBHideNext;
  953.       }
  954.       else
  955.       {
  956.          vC3 = -1;
  957.          vRemove = false;
  958.          vCC = cmBRemove;
  959.       }
  960.    }
  961.    else if(vCC == cmGameOver)
  962.    {
  963.       GameOver();
  964.    }
  965.    else if(vCC == cmBangAll)
  966.    {
  967.       vBBI = random(323);
  968.       if(0 < BB[vBBI].COL)
  969.       {
  970.          BB[vBBI].N.gotoAndPlay("Bang" + BB[vBBI].COL);
  971.          CC[BB[vBBI].COL - 1]--;
  972.          BB[vBBI].COL = 0;
  973.       }
  974.    }
  975.    else if(vCC = cmShowName)
  976.    {
  977.       vDialog = true;
  978.       attachMovie("_en","wen",15001);
  979.       with(wen)
  980.       {
  981.          _x = (800 - _width) / 2;
  982.          _y = (600 - _height) / 2;
  983.       }
  984.       vCC = cmNothing;
  985.    }
  986. }
  987. function _BB(AR, AC, ADPT)
  988. {
  989.    this.R = AR;
  990.    this.C = AC;
  991.    this.COL = 0;
  992.    this.Y = (AR - 1) * cD + cB + cR;
  993.    if(AR % 2)
  994.    {
  995.       this.X = (AC - 1) * cD + cB + cR;
  996.    }
  997.    else
  998.    {
  999.       this.X = (AC - 1) * cD + cB + cD;
  1000.    }
  1001.    this.N = "b" + ADPT;
  1002.    attachMovie("_b",this.N,ADPT);
  1003.    this.N = eval("b" + ADPT);
  1004.    gotoAndStop("Blank");
  1005.    this.N._x = this.X;
  1006.    this.N._y = this.Y;
  1007.    this.F = 0;
  1008. }
  1009. function MakeBS()
  1010. {
  1011.    var i;
  1012.    vBS = "";
  1013.    i = 0;
  1014.    while(i < 323)
  1015.    {
  1016.       vBS += BB[i].COL;
  1017.       i++;
  1018.    }
  1019. }
  1020. function ColorMake(AC)
  1021. {
  1022.    var c1;
  1023.    var c2;
  1024.    var c3;
  1025.    var cc1;
  1026.    var cc2;
  1027.    var cc3;
  1028.    var m;
  1029.    vDColor = AC;
  1030.    cc1 = (AC & 16711680) >> 16;
  1031.    cc2 = (AC & 65280) >> 8;
  1032.    cc3 = AC & 255;
  1033.    m = 0.8;
  1034.    c1 = int(cc1 * m);
  1035.    if(c1 < 0)
  1036.    {
  1037.       c1 = 0;
  1038.    }
  1039.    c2 = int(cc2 * m);
  1040.    if(c2 < 0)
  1041.    {
  1042.       c2 = 0;
  1043.    }
  1044.    c3 = int(cc3 * m);
  1045.    if(c3 < 0)
  1046.    {
  1047.       c3 = 0;
  1048.    }
  1049.    vDColorD = c1 << 16 | c2 << 8 | c3;
  1050.    m = 0.9;
  1051.    c1 = int(cc1 * m);
  1052.    if(c1 < 0)
  1053.    {
  1054.       c1 = 0;
  1055.    }
  1056.    c2 = int(cc2 * m);
  1057.    if(c2 < 0)
  1058.    {
  1059.       c2 = 0;
  1060.    }
  1061.    c3 = int(cc3 * m);
  1062.    if(c3 < 0)
  1063.    {
  1064.       c3 = 0;
  1065.    }
  1066.    vDColorDL = c1 << 16 | c2 << 8 | c3;
  1067.    m = 1.2;
  1068.    c1 = int(cc1 * m);
  1069.    if(255 < c1)
  1070.    {
  1071.       c1 = 255;
  1072.    }
  1073.    c2 = int(cc2 * m);
  1074.    if(255 < c2)
  1075.    {
  1076.       c2 = 255;
  1077.    }
  1078.    c3 = int(cc3 * m);
  1079.    if(255 < c3)
  1080.    {
  1081.       c3 = 255;
  1082.    }
  1083.    vDColorL = c1 << 16 | c2 << 8 | c3;
  1084.    m = 1.4;
  1085.    c1 = int(cc1 * m);
  1086.    if(255 < c1)
  1087.    {
  1088.       c1 = 255;
  1089.    }
  1090.    c2 = int(cc2 * m);
  1091.    if(255 < c2)
  1092.    {
  1093.       c2 = 255;
  1094.    }
  1095.    c3 = int(cc3 * m);
  1096.    if(255 < c3)
  1097.    {
  1098.       c3 = 255;
  1099.    }
  1100.    vDColorHL = c1 << 16 | c2 << 8 | c3;
  1101. }
  1102. function SetWCO(AN)
  1103. {
  1104.    var c;
  1105.    c = new Color(AN + "._f");
  1106.    c.setRGB(vDColor);
  1107.    delete c;
  1108.    c = new Color(AN + "._btl");
  1109.    c.setRGB(vDColorHL);
  1110.    delete c;
  1111.    c = new Color(AN + "._bt");
  1112.    c.setRGB(vDColorL);
  1113.    delete c;
  1114.    c = new Color(AN + "._bl");
  1115.    c.setRGB(vDColorL);
  1116.    delete c;
  1117.    c = new Color(AN + "._btr");
  1118.    c.setRGB(vDColorDL);
  1119.    delete c;
  1120.    c = new Color(AN + "._bbl");
  1121.    c.setRGB(vDColorDL);
  1122.    delete c;
  1123.    c = new Color(AN + "._bb");
  1124.    c.setRGB(vDColorD);
  1125.    delete c;
  1126.    c = new Color(AN + "._br");
  1127.    c.setRGB(vDColorD);
  1128.    delete c;
  1129.    c = new Color(AN + "._bbr");
  1130.    c.setRGB(vDColorD);
  1131.    delete c;
  1132. }
  1133. function SetWCI(AN)
  1134. {
  1135.    var c;
  1136.    c = new Color(AN + "._f");
  1137.    c.setRGB(vDColor);
  1138.    delete c;
  1139.    c = new Color(AN + "._btl");
  1140.    c.setRGB(vDColorD);
  1141.    delete c;
  1142.    c = new Color(AN + "._bt");
  1143.    c.setRGB(vDColorD);
  1144.    delete c;
  1145.    c = new Color(AN + "._bl");
  1146.    c.setRGB(vDColorD);
  1147.    delete c;
  1148.    c = new Color(AN + "._btr");
  1149.    c.setRGB(vDColorDL);
  1150.    delete c;
  1151.    c = new Color(AN + "._bbl");
  1152.    c.setRGB(vDColorDL);
  1153.    delete c;
  1154.    c = new Color(AN + "._bb");
  1155.    c.setRGB(vDColorL);
  1156.    delete c;
  1157.    c = new Color(AN + "._br");
  1158.    c.setRGB(vDColorL);
  1159.    delete c;
  1160.    c = new Color(AN + "._bbr");
  1161.    c.setRGB(vDColorHL);
  1162.    delete c;
  1163. }
  1164. function SetWCR(AN)
  1165. {
  1166.    var c;
  1167.    c = new Color(AN + "._btl");
  1168.    c.setRGB(vDColorD);
  1169.    delete c;
  1170.    c = new Color(AN + "._btr");
  1171.    c.setRGB(vDColorL);
  1172.    delete c;
  1173.    c = new Color(AN + "._bbl");
  1174.    c.setRGB(vDColorD);
  1175.    delete c;
  1176.    c = new Color(AN + "._bbr");
  1177.    c.setRGB(vDColorL);
  1178.    delete c;
  1179. }
  1180. function SetWBarC(AN)
  1181. {
  1182.    var c;
  1183.    c = new Color(AN + "._t");
  1184.    c.setRGB(vDColorD);
  1185.    delete c;
  1186.    c = new Color(AN + "._b");
  1187.    c.setRGB(vDColorL);
  1188.    delete c;
  1189. }
  1190. function SetWRectC(AN)
  1191. {
  1192.    var c;
  1193.    c = new Color(AN + "._t");
  1194.    c.setRGB(vDColorD);
  1195.    delete c;
  1196.    c = new Color(AN + "._b");
  1197.    c.setRGB(vDColorL);
  1198.    delete c;
  1199.    c = new Color(AN + "._l");
  1200.    c.setRGB(vDColorD);
  1201.    delete c;
  1202.    c = new Color(AN + "._r");
  1203.    c.setRGB(vDColorL);
  1204.    delete c;
  1205. }
  1206. function Set3DDC(AN)
  1207. {
  1208.    c = new Color(eval(AN + "._b"));
  1209.    c.setRGB(vDColorL);
  1210.    delete c;
  1211.    c = new Color(eval(AN + "._m"));
  1212.    c.setRGB(vDColor);
  1213.    delete c;
  1214.    c = new Color(eval(AN + "._t"));
  1215.    c.setRGB(vDColorD);
  1216.    delete c;
  1217. }
  1218. function Set3DUC(AN)
  1219. {
  1220.    c = new Color(eval(AN + "._b"));
  1221.    c.setRGB(vDColorD);
  1222.    delete c;
  1223.    c = new Color(eval(AN + "._m"));
  1224.    c.setRGB(vDColor);
  1225.    delete c;
  1226.    c = new Color(eval(AN + "._t"));
  1227.    c.setRGB(vDColorL);
  1228.    delete c;
  1229. }
  1230. function SetMainWC()
  1231. {
  1232.    var c;
  1233.    SetWCO("F");
  1234.    SetWCI("F.B");
  1235.    SetWCR("F._next");
  1236.    SetWCR("F._cur");
  1237.    SetWCR("F.bb1._b");
  1238.    SetWCR("F.bb2._b");
  1239.    SetWCR("F.bb3._b");
  1240.    SetWCR("F.bb4._b");
  1241.    SetWCR("F.bb5._b");
  1242.    Set3DDC("lbA");
  1243.    Set3DUC("lbH");
  1244.    Set3DUC("lbD");
  1245. }
  1246. function TopAdd(AN, AS)
  1247. {
  1248.    var i;
  1249.    var j;
  1250.    i = 0;
  1251.    while(i < 10)
  1252.    {
  1253.       if(AS >= TOPS[i + (vLevel - 1) * 10])
  1254.       {
  1255.          j = 9 + (vLevel - 1) * 10;
  1256.          while(i + (vLevel - 1) * 10 < j)
  1257.          {
  1258.             TOPN[j] = TOPN[j - 1];
  1259.             TOPS[j] = TOPS[j - 1];
  1260.             j--;
  1261.          }
  1262.          TOPN[i + (vLevel - 1) * 10] = AN;
  1263.          TOPS[i + (vLevel - 1) * 10] = AS;
  1264.          return true;
  1265.       }
  1266.       i++;
  1267.    }
  1268.    return false;
  1269. }
  1270. function MakeN()
  1271. {
  1272.    var i;
  1273.    vNS = "";
  1274.    i = 0;
  1275.    while(i < vNamesC)
  1276.    {
  1277.       vNS += NAMES[i] + "|";
  1278.       i++;
  1279.    }
  1280. }
  1281. function GetN()
  1282. {
  1283.    var i;
  1284.    vNamesC = 0;
  1285.    while(0 < vNS.indexOf("|"))
  1286.    {
  1287.       i = vNS.indexOf("|");
  1288.       NAMES[vNamesC] = vNS.substr(0,i);
  1289.       vNS = vNS.substr(i + 1);
  1290.       vNamesC++;
  1291.       if(100 < vNamesC)
  1292.       {
  1293.          break;
  1294.       }
  1295.    }
  1296.    vNS = "";
  1297. }
  1298. function MakeT()
  1299. {
  1300.    var i;
  1301.    vTS = "";
  1302.    i = 0;
  1303.    while(i < 30)
  1304.    {
  1305.       vTS += TOPN[i] + "|" + TOPS[i] + "|";
  1306.       i++;
  1307.    }
  1308. }
  1309. function GetT()
  1310. {
  1311.    var i;
  1312.    var j;
  1313.    if(vTS.length == 0)
  1314.    {
  1315.       return 0;
  1316.    }
  1317.    i = 0;
  1318.    while(i < 30)
  1319.    {
  1320.       j = vTS.indexOf("|");
  1321.       TOPN[i] = vTS.substr(0,j);
  1322.       vTS = vTS.substr(j + 1);
  1323.       j = vTS.indexOf("|");
  1324.       TOPS[i] = int(vTS.substr(0,j));
  1325.       vTS = vTS.substr(j + 1);
  1326.       i++;
  1327.    }
  1328. }
  1329. function SDButton()
  1330. {
  1331.    if(vSound)
  1332.    {
  1333.       vsDown.setPan(0);
  1334.       vsDown.start();
  1335.    }
  1336. }
  1337. function SetVol()
  1338. {
  1339.    vsBang.setVolume(vVolume);
  1340.    vsStart.setVolume(vVolume);
  1341.    vsConnect.setVolume(vVolume);
  1342.    vsDown.setVolume(vVolume);
  1343.    vsGO.setVolume(vVolume);
  1344. }
  1345. function Crypto(st)
  1346. {
  1347.    var sum1 = 0;
  1348.    var sum2 = 0;
  1349.    var i = 0;
  1350.    while(i < st.length)
  1351.    {
  1352.       sum1 += st.charCodeAt(i);
  1353.       sum2 += st.charCodeAt(i) ^ 175;
  1354.       i++;
  1355.    }
  1356.    sum1 %= 256;
  1357.    sum2 %= 256;
  1358.    st = String.fromCharCode(sum1) + String.fromCharCode(sum2) + st;
  1359.    var cryptSt = "";
  1360.    var b0 = 193;
  1361.    var i = 0;
  1362.    while(i < st.length)
  1363.    {
  1364.       var b = st.charCodeAt(i);
  1365.       var CryptB = b ^ b0;
  1366.       CryptB = CryptB.toString();
  1367.       var len = CryptB.length;
  1368.       var j = 0;
  1369.       while(j < 3 - len)
  1370.       {
  1371.          CryptB = "0" + CryptB;
  1372.          j++;
  1373.       }
  1374.       cryptSt += CryptB;
  1375.       b0 = b;
  1376.       i++;
  1377.    }
  1378.    return cryptSt;
  1379. }
  1380. cB = 24;
  1381. cD = 32;
  1382. cDD = cD * cD;
  1383. cDM = cD * 0.75;
  1384. cDMM = cDM * cDM;
  1385. cR = 16;
  1386. cBR = cB + cR;
  1387. cXNext = 40;
  1388. cYNext = 552;
  1389. cXCur = 296;
  1390. cYCur = 552;
  1391. cmNothing = 0;
  1392. cmBMakeNext = 10;
  1393. cmBMakeCur = 11;
  1394. cmBHideNext = 12;
  1395. cmBMCalc = 14;
  1396. cmBM = 15;
  1397. cmBRemoveCalc = 16;
  1398. cmBRemove = 17;
  1399. cmBFRemoveCalc = 18;
  1400. cmBDecLevelStep = 19;
  1401. cmBFDownCalc = 20;
  1402. cmGameOver = 21;
  1403. cmBangAll = 22;
  1404. cmShowName = 23;
  1405. cmShowTop = 24;
  1406. vBCur = "";
  1407. vBCurCol = -1;
  1408. vBNext = "";
  1409. vBNextCol = -1;
  1410. vMPS = 0;
  1411. vFPS = 0;
  1412. vCC = cmNothing;
  1413. vEnableMov = false;
  1414. vBRC = 0;
  1415. vRemove = true;
  1416. vPause = 0;
  1417. vSC = 0;
  1418. vBonus = 0;
  1419. vBonusF = false;
  1420. vC3 = 1;
  1421. vStartRC = 9;
  1422. vDialog = false;
  1423. vRestart = false;
  1424. vRC = 0;
  1425. vAngle = 0;
  1426. vDelta = 6;
  1427. vDelta2 = vDelta / 6;
  1428. vDX = 0;
  1429. vDY = 0;
  1430. vX = 0;
  1431. vY = 0;
  1432. vBBI = 0;
  1433. vTX = 0;
  1434. vTY = 0;
  1435. vTC = 0;
  1436. vTLDist = 0;
  1437. vLMax = 5;
  1438. vLMaxC = 5;
  1439. vLCur = 5;
  1440. vLevel = 1;
  1441. vAS = true;
  1442. vDColor = 12632319;
  1443. vBAnim = false;
  1444. vSound = true;
  1445. vLQ = false;
  1446. vVolume = 20;
  1447. vBS = "";
  1448. vNS = "";
  1449. vTS = "";
  1450. vRR = "Download the Deluxe version";
  1451. vDD = 0;
  1452. bbb = true;
  1453. aa = true;
  1454. vDColorL = 0;
  1455. vDColorD = 0;
  1456. vDColorDL = 0;
  1457. vDColorHL = 0;
  1458. vNamesC = 0;
  1459. ColorMake(vDColor);
  1460. SetMainWC();
  1461. Init();
  1462. attachMovie("_splash","ws",15000);
  1463. ws._x = 400;
  1464. ws._y = 200;
  1465. if(bbb)
  1466. {
  1467.    removeMovieClip("ws");
  1468.    Start(true);
  1469. }
  1470. else
  1471. {
  1472.    gotoAndStop("LB");
  1473. }
  1474.